package com.itheima.info.manager.system.service;

import com.itheima.info.manager.system.dao.BaseStudentDao;
import com.itheima.info.manager.system.dao.OtherStudentDao;
import com.itheima.info.manager.system.dao.StudentDao;
import com.itheima.info.manager.system.domain.Student;
import com.itheima.info.manager.system.factory.StudentDaoFactory;

/*
学生的 业务处理类
判断
学生的
增
删
改
查

 */
public class StudentService {
    private BaseStudentDao studentDao = StudentDaoFactory.getStudentDao();

    //新增  参数  学生对象   返回值  布尔类型
    public boolean addStudent(Student student) {
        //获取学生对象
        //调用dao 添加方法
        //boolean flag =studentDao.addStudent(student) ;
        //返回结果
        return studentDao.addStudent(student);

    }

    //判断学号是否存在
    //参数  学号 String sid
    //返回值类型 boolean
    public boolean isExists(String sid) {
        //获取所有的学生

        Student[] stus = studentDao.findAllStudents();
        //遍历所有的学生
        for (int i = 0; i < stus.length; i++) {
            Student stu = stus[i];
            //判断 学号 是否和 学生的学号一致
            if (stu != null && stu.getSid().equals(sid)) {
                return true; //一致 存在
            }
        }
        //所有的都不一致 才不存在
        return false;

    }

    public Student[] findAllStudents() {
        //调用 dao  查看所有方法
        Student[] stus = studentDao.findAllStudents();
        //判断数组中是否有元素
        for (int i = 0; i < stus.length; i++) {
            Student stu = stus[i];
            if(stu!=null){ //有  返回数组
                return stus;
            }
        }
        //没有  null
        return null;
    }

    //参数 学号 String sid 返回值 void
    public void deleteStudent(String sid){
        //调用 dao 删除方法
        studentDao.deleteStudent(sid);

    }

    public void updateStudent(String sid, Student student) {
        //调用dao 的修改方法
        studentDao.updateStudent(sid,student);
    }
}
